A. Field of the Invention
Embodiments of this invention generally relate to computer systems and, more particularly, to methods and systems for linking a user to one or more records in a directory.
B. Description of the Related Art
Electronic directories are fast becoming a popular tool for managing network resources. Printed directories comprise lists of names and other identifying information that allow others to find and easily contact the listed people. Directories may contain, for example, residents of a particular geographic region (a telephone directory), members of an organization (mailing list), or employees of a company (corporate directory). Electronic directories serve the same purpose as printed directories and contain the same type of information. In addition, computer applications use electronic directories to access information about system users, such as login account names and e-mail addresses, and physical devices, such as servers, printers, and file locations.
Early electronic directories were developed for a particular application and computer system and were often incompatible with other applications and systems. As a result, each software operating system and accompanying hardware configuration typically maintained multiple directories containing overlapping information, an unfortunate consequence of the early directory systems. New protocols soon emerged that made it possible for almost any application running on virtually any computer system to obtain directory information. The X.500 directory access protocol (DAP), for example, provides standardized functionality that assists users in browsing or searching directories regardless of the type of server hosting the directory. Another example of a directory protocol is the Lightweight Directory Access Protocol (LDAP), a TCP/IP-based version of X.500 DAP.
Directory access protocols overcome the problem of incompatible host systems and access procedures, but do not guarantee that the type of information stored in the directories is standardized. For example, one directory may store the user's entire first name, for example, while another directory may not include first names at all or may contain only a first initial. In fact, directory content often varies widely depending on the needs of the host organization or application maintaining the directory. Application programs that want to access and use the information in a directory must search the database to find a particular record. Because directory content is not standard, however, programmers cannot easily program an application to search the directory based on a particular field.
NameView.TM., for example, is an application program in the HotJava Views.TM. suite of application programs that provides users with e-mail, calendaring, name directory access, and Internet browsing capabilities all written in Java.TM. programming language..sup.1 The Java programming language is an object-oriented programming language that is described, for example, in a text entitled "The Java Language Specification" by James Gosling, Bill Joy, and Guy Steele, Addison-Wesley, 1996.
 FNT .sup.1 Sun, Sun Microsystems, the Sun Logo, NameView, HotJava Views, and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
NameView enables users to view a name directory provided by an application within HotJava Views or downloaded from an existing directory database. Typically, a host organization configures the NameView directory to contain user information such as name, telephone number, and e-mail address. Each host organization, however, may customize their NameView directory to include different information.
Programmers can design applications to contain links to information in other directories. These links typically comprise addresses, pointers, or other information that an application uses to access information in another application or data storage area. NameView, for example, can be programmed so that NameView records contain links to directory records containing a user's calendar or mail store address, allowing a NameView application to quickly locate and access a user's e-mail or calendar. Links between directories, however, must first be established. Ideally, the application would be able to recognize a user's record in a directory and automatically create the appropriate links.
One method of automatically linking a user to a record in a directory is by programming the application to search for a record containing the user's login information. User login information, however, is not always unique to a single individual. Network user "David E. Smith" using the login account name "desmith" may have left the network and, six months later, "Dawn E. Smith" is given access to the network under the same login account name. User records from David's use of the "desmith" login account name may still be archived on the system.
Furthermore, user login information that is unique to a particular subset of a network may not be unique to a directory database that stores company-wide information. As a result, application programs that link records solely by user login information may incorrectly link some users to records belonging to other users having the same login information.
Another method of linking a user to a record in a directory is to prompt the user to enter the information directly. This method, however, requires that the user know what information the application needs and enter the information without error. Information such as a mailbox or a calendar address may be complicated and difficult for the typical user to determine or remember. Furthermore, if the user enters incorrect or incomplete information, the application may not be able to find a matching record and may create a redundant record.
Therefore, a need exists for a method of linking a user to one or more records in a directory containing multiple records possessing the search term or terms, a method of linking a user to one or more records in a directory using a unique reference identifier, and a method of linking a user to one or more records in a directory using minimal human interaction.